package 命令模式;

/**
 * @author zzs
 * @ClassName Demo.java
 * @Description 不再是传统的傻瓜式调用，而是需要事先一定的配置。这样做的好处就是命令与调用之间是松耦合的，调用时机很灵活，适合做一些日志回滚或者队列请求
 * @createTime 2022年05月16日 19:11:00
 */
public class Demo {
    public static void main(String[] args) {
        BedRoomLoader bedRoomLoader = new BedRoomLoader();
        // 设置遥控器的按钮
        bedRoomLoader.setOpenCommands(0, new LightOpenCommand(new BedRoomLight()));
        bedRoomLoader.setCloseCommands(0, new LightCloseCommand(new BedRoomLight()));
        // 发动命令
        bedRoomLoader.close(0);
        bedRoomLoader.open(0);
        // 回退
        bedRoomLoader.undo();
    }
}
